﻿using MySql.Data.MySqlClient;
using ServicioTecnico.Datos.Interfaces;
using ServicioTecnico.Entidad;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using DapperExtensions;

namespace ServicioTecnico.Datos.Repositories
{
    public interface IAccesorioRepository : IRepository<Accesorio>
    {

    }

    public class AccesorioRepository : IAccesorioRepository
    {
        protected readonly IDbConnection _db;
        public AccesorioRepository()
        {
            _db = new MySqlConnection(ConfigurationManager.ConnectionStrings["SERVICIO"].ToString()); 
        }

        public IList<Accesorio> FindAll()
        {
            using (IDbConnection _db = new MySqlConnection(ConfigurationManager.ConnectionStrings["SERVICIO"].ToString()))
            {
                return _db.Query<Accesorio>("SELECT * FROM accesorios").ToList();
            }
        }

        public IQueryable<Accesorio> Find(System.Linq.Expressions.Expression<Func<Accesorio, bool>> predicate)
        {
            throw new NotImplementedException();
        }

        public Accesorio FindById(int id)
        {
            throw new NotImplementedException();
        }

        public int Add(Accesorio newEntity)
        {
            string query = "INSERT INTO ACCESORIOS (accesorio) " + 
                            "VALUES (@accesorio)";

            using (IDbConnection _db = new MySqlConnection(ConfigurationManager.ConnectionStrings["SERVICIO"].ToString()))
            {
                return _db.Execute(query, new { accesorio = newEntity.accesorio });
            }
        }

        public bool Remove(int id)
        {
            throw new NotImplementedException();
        }

        public int Modify(Accesorio entity)
        {
            throw new NotImplementedException();
        }
    }
}
